#lang racket


"Part 1: Numerical integration"

"Problem 1: Bitdiddle's function"

(define (bitfunc x)
    'your-code-here)


"Problem 2: A rectangle under Bitdiddle's function"

(define (bitfunc-rect x1 x2)
    'your-code-here)


"Problem 3: Integrating Bitdiddle's function"

(define (bitfunc-integral-recur num-steps x1 x2)
    'your-code-here)

(define (bitfunc-integral-iter num-steps x1 x2)
    'your-code-here)


"Problem 4: Integrating any function"

(define (integral func num-steps x1 x2)
    'your-code-here)


"Problem 5: Area of a unit circle"

(define (approx-pi num-steps)
    'your-code-here)


"Problem 6: Integrating with pieces of any shape"

(define (rectangle func x1 x2)
    'your-code-here)

(define (trapezoid func x1 x2)
    'your-code-here)

(define (integral-with piece func num-steps x1 x2)
    'your-code-here)


"Problem 7: Better approximation of pi"

(define (better-pi num-steps)
    'your-code-here)



"Part 2: Symbolic differentiation"

(define (deriv-constant constant wrt)
    0)


"Problem 8: Derivative of a variable"

(define (deriv-variable var wrt)
    'your-code-here)


"Problem 9: Calling the right function"

(define (derivative expr wrt)
    (cond
        ; your code here
        (else (error "Don't know how to differentiate" expr))))


"Problem 10: Derivative of a sum"

(define (deriv-sum expr wrt)
    'your-code-here)


"Problem 11: Derivative of a product"

(define (deriv-product expr wrt)
    'your-code-here)


"Problem 12: Additional testing"

; Additional test cases for 'derivative' go here.
